package org.wheel.plugins.toolkit.sql.capability;

import org.wheel.plugins.toolkit.sql.helper.SFunction;

import java.util.function.Consumer;

/**
 * OR 逻辑组合能力接口
 * 1. 单纯 OR 关键字
 * 2. 括号包裹，嵌套 OR：or(o -> o.eq(...).gt(...))
 * @param <W>
 * @param <T>
 */
public interface LambdaOr<W extends LambdaOr<W, T> & LambdaCompare<W, T> & LambdaColumnCompare<W, T>, T> {
    /* ---------- 1. 单纯 OR 关键字 ---------- */
    W or();

    default W or(SFunction<W , W > nested){
        return or(true, nested);
    }

    /* ---------- 2. 嵌套 OR：(condition AND condition ...) ---------- */
    W or(boolean condition, SFunction<W , W > nested);

}
